Windows OSのログを Universal Forwarder を使って Splunk Cloud に転送する
今回はWindows OSのログをUniversal Forwarder を使って Splunk Cloud に転送してみたいと思います。
以下の環境で実施しています。
エージェントインストール環境
- AWS - t3.medium
- Windows Server 2025 Datacenter
- splunkforwarder-9.4.0
Splunk環境
- Splunk Cloud
ユニバーサルフォワーダーはSplunkにデータを送る軽量なエージェントとなります。
splunk.comからダウンロードすることができます。
ダウンロードにはsplunk.comのアカウントが必要ですので、新規で作成するか、既に作成済みであればログインしてからダウンロードします。
ユニバーサルフォワーダーの概要についてはこちらのブログをご参考いただければと思います。
前提条件
ハードウェア要件
Component | Required space |
---|---|
Processing | 1.5Ghz |
RAM | 512MB |
Free Disk Space | 5GB |
サポートされているOS
以下のページに対応表が記載されていますので確認します。
今回はWindowsで実施していきます。
Splunk Cloudでのフォワーダーのソフトウェア要件
Splunk Cloudでサポートされるユニバーサルフォワーダーのバージョンは以下に公開されています。
基本的に最新のフォワーダーにアップグレードすることがおすすめされていますが、下記の情報をもとに計画的にアップグレード対応が必要となります。
ネットワーク要件
アウトバウンドの9997ポートになります。プロキシ環境が必要な場合は、HTTPOUTというオプションがあるのでこちらを使います。(今回の記事ではご紹介していません!)
その他
インストールはコンピュータの管理者権限で行うか、UACの管理者パスワードが必要です。
インストール作業
ダウンロードしたmsiファイルをダブルクリックすることでインストールできます。(別途CLIでもインストール可能です。)
GUIでのインストールの仕方は2種類あります。とりあえずインストールだけを行うパターンと、詳細設定を行ってインストールを行うパターンです。
最初に簡単に違いを説明します。
とりあえずインストールパターン
- データ収集の設定は後からマニュアルでコンフィグファイルから設定する必要があります
詳細設定パターン
- おおまかなデータ収集の設定をインストール時に行い、コンフィグファイルを自動で作成することができます。その後の設定変更などは、マニュアルでコンフィグファイルを調整したり、追記したりします
- サービスの実行権限を選択することができます。インストール時にしか行えません
折角なのでそれぞれ手順を確認しようと思います。
とりあえずインストールパターン
プロンプトでライセンスの同意と、Splunk Enterprise環境でのインストールか、Splunk Cloud環境でのインストールでか選択します。
今回Splunk Cloudに送信するので、Splunk Cloudを選択します。
このまま「次へ」を進んでいくとユニバーサルフォワーダー用のユーザー名とパスワードを作成する必要があるので作成します。
ここで、パスワードを自動作成した場合は「%TEMP%¥splunk.log」に書き込まれますので、インストール後にファイルを開いて確認することができます。
(ここで作成するアカウントはインストール後にAppのインストールを行う際に必要となります。Splunk Cloudの場合、Splunk Cloudと接続するための認証を行うためのAppをインストール際にも使います)
ここでは、自分で設定します。
次のデプロイメントサーバーを使うかどうかの選択になります。デプロイメントサーバーは複数台のフォワーダーの設定を一括管理と配信するためのサーバーを別途構築して、フォワーダーを管理する方法になります。
今回は利用せずにインストールします。
そのままインストールを完了させます。
Splunk Cloud環境の場合は、続いてSplunk Cloudとの認証するためのAppをインストールして初めてデータの送信が開始されるようになります。
またとりあえずインストールパターンだと、ユニバーサルフォワーダーの動作ログのみが出力対象となるような設定になっています。
続いて、詳細設定インストールパターンを見てみます。
詳細設定インストールパターン
msiファイルをダブルクリック後、プロンプトでライセンスの同意と、Splunk Enterprise環境でのインストールか、Splunk Cloud環境でのインストールか選択します。
今回Splunk Cloudに送信するので、Splunk Cloudを選択します。
カスタマイズオプションを選択して次に進みます。
ユニバーサルフォワーダーをインストールするパスを変更することができます。
通常はデフォルトのパスで問題ないかと思います。
続いてどのOSユーザー権限でユニバーサルフォワーダーのサービスを動作させるかを選択します。
ユニバーサルフォワーダー 9.1以前はデフォルトで「Local System」権限でサービスを起動する仕様となっていたのですが、9.1以降はここで選択可能な「Virtual Account」を選択した時の権限である「SplunkForwarder」権限で起動するように変わっています。
これは、より最小権限で動作させるための推奨の設定になっています。
一部の拡張Appでは、この権限で動作させることができないものがありますが、一旦通常のWindowsのデータ取得では問題ないので、この権限で起動させるオプションにします。
(拡張Appで権限が足りない場合は、その時に権限変更を行う必要があります。)
ちなみに、前のとりあえずインストールパターンでも、「SplunkForwarder」権限で動作することになります。
次に先程の仮想アカウントに付与する権限の範囲を選択します。
この後のデータ取得する項目によっては、さらに権限を絞ることも可能ですが、全てチェックを入れておいて問題ないかと思います。
次に取得するデータを選択することができます。
ここで選択した項目は、「<フォワーダーインストールパス>¥etc¥apps¥SplunkUniversalForwarder¥local¥inputs.conf」に設定が反映されます。
WindowsEventやメトリクス、特定のログファイルを監視することができます。
Path to monitorでは、ディレクトリを参照して選択すると、ディレクトリ配下のファイル全てに対して更新があった際にログを転送することができます。
あとは、とりあえずインストールパターンと同じ、ユニバーサルフォワーダーのアカウント作成と、デプロイメントサーバーの設定になります。
インストールの確認
どちらかのインストール方法でインストールした後、インストールができたことを確認します。
Windowsのタスクバーの検索ボックスから「services.msc」などで、サービスを確認します。
「SplunkForwarder」というサービスが起動していますので、動作していることを確認します。
また、自動起動はONになっています。
Splunk Cloudとの接続認証
Splunk CloudのWebコンソールにログインして、認証に必要なAppをダウンロードします。App > Universal Forwarder に進みます。
ユニバーサルフォワーダーの認証情報をダウンロードします。
「splunkclouduf.spl」というファイルがダウンロードできるので、ユニバーサルフォワーダーをインストールしたホストにコピーします。
コマンドプロンプトを開き以下のコマンドでAppのインストールを行います。
## コピーした認証情報をSplunkのコマンドでインストールします
<フォワーダーインストールパス>\bin\splunk.exe install app "<コピーした認証情報のフォルダパス>\splunkclouduf.spl"
## ユニバーサルフォワーダーのインストール時に作成したアカウント情報を入力
Splunk username:
Password:
App 'C:\Users\Administrator\Downloads\splunkclouduf.spl' installed
You need to restart the Splunk Server (splunkd) for your changes to take effect.
## サービスをリスタート
<フォワーダーインストールパス>\bin\splun.exe restart
サービスリスタート後に、データがSplunk Cloudに送信されはじめます。
しばらくしてSplunk CloudのWebコンソールで、検索するとデータが取得されはじめます。
上記のインストール手順だけだと、「index」はデフォルトのものに入るようになっています。ホスト名などで検索してみます。
(初期設定ではデフォルトのインデックスは「main」です)
収集対象の設定
とりあえずインストールパターンでインストールした場合や、後で収集対象の設定を変更したい場合は、ユニバーサルフォワーダーの設定ファイルを編集する必要があります。
編集する対象のコンフィグは以下になります。
<フォワーダーインストールパス>\etc\apps\SplunkUniversalForwarder\local\inputs.conf
このフォイルをテキストエディタで開きます。または、新規で作成して編集します。(とりあえずインストールパターンの場合は新規作成になります)
コンフィグの内容は以下の公式のドキュメントあたりを参考にしていく形になりますが、ますは詳細設定インストールパターンで選択しておくのが簡単かと思います。
ただし、収集対象の有効化・無効化くらいは最初に覚えておくとよいかと思います。
設定ファイルは以下のように[]
のセクションで区切られるスタンザと呼ばれ、disabled=0
が有効化の状態です。または、このパラメータがない場合も有効化の状態です。
[WinEventLog://Application]
checkpointInterval = 5
current_only = 0
disabled = 0
start_from = oldest
収集をやめたい場合はdisabled = 1
にします。
その後にサービスを再起動することで設定が反映されます。
コマンドプロンプトなどで実行します。
## サービスをリスタート
<フォワーダーインストールパス>\bin\splunk.exe restart
これでこのログは収集が停止します。
ユニバーサルフォワーダーのアップグレード
ユニバーサルフォワーダーのアップグレードが必要なときを想定して、アップグレードをやってみます。
今回アップグレードする前のバージョンは「9.3.0」です。
最初にユニバーサルフォワーダーの設定ファイルをコピーします。
デフォルトだと、ユニバーサルフォワーダーのインストールパスはC:\Program Files\SplunkUniversalForwarder
になるので、この配下のetc
フォルダをまるごとコピーして、デスクトップなどにおいておきます。
アップグレード時には元の設定をそのまま引き継いでアップグレードが可能なのですが、万が一ダウングレードが必要になった場合は、インストールし直す必要があります。
その時に、バックアップした設定ファイルを使って、元に戻することが可能です。
アップグレード前にコマンドプロンプトを開いてフォワーダーのサービスを停止が必要です。
## サービスを停止
<フォワーダーインストールパス>\bin\spunk.exe stop
SplunkForwarder: Stopped
アップグレード先のユニバーサルフォワーダーをダウンロードして、ダブルクリックで展開します。
バージョンは「9.4.0」にあげます。
使用許諾に同意して、インストールを行います。
バージョンがあがっていることが確認できます。
Splunk CloudのWebコンソールでもログ収集が再開できていることを確認できます。
メトリクスなど、フォワーダーが収集コマンドを実行しているログについては、アップグレードしている間はログ収集が止まりますが、イベントログやその他の外部サービスが出力したログについては、サービスを停止した時点のファイル読み込み位置を覚えているので、特にデータ収集欠損はなさそうです。
最後にアップグレード時の差分を確認するためのログファイルがあるので確認しておきます。
C:\Program Files\SplunkUniversalForwarder\var\log\splunk
配下に migration.log
があるので見に行きます。
実際には migration.log.2025-01-06.11-03-53
というログファイルが生成されていましたので、開いてみます。
Migrating to:
VERSION=9.4.0
BUILD=6b4ebe426ca6
PRODUCT=splunk
PLATFORM=Windows-AMD64
It seems that the Splunk default certificates are being used. If certificate validation is turned on using the default certificates (not-recommended), this may result in loss of communication in mixed-version Splunk environments after upgrade.
"C:\Program Files\SplunkUniversalForwarder\etc\auth\ca.pem": already a renewed Splunk certificate: skipping renewal
"C:\Program Files\SplunkUniversalForwarder\etc\auth\cacert.pem": already a renewed Splunk certificate: skipping renewal
Creating: C:\Program Files\SplunkUniversalForwarder\var\run\splunk\collect
[Peer-apps] Performing migration.
[Peer-apps] Finished migration.
[Cleaning bin and lib directories] performing migration.
[Cleaning bin and lib directories] completed migration.
アップグレード後にはどんな出力がでているのか確認しておくのがいいかと思います。
まとめ
以上、Windows OSのログをSplunk Cloudに送ってみました。
最初のインストールから、おおよその設定方法、アップグレードまでの手順について確認することができました。
本記事がどなたかの一助になれば幸いです。